package com.jikangjun.disk.myshare.repository;

import com.jikangjun.disk.mybatis.flexigrid.PagingEntity;
import com.jikangjun.disk.myshare.entity.SearchShareEntity;
import com.jikangjun.disk.myshare.entity.ShareEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 分享数据访问层
 */
@Mapper
public interface ShareDao {
    
    /**
     * 查询用户分享记录总数
     */
    Integer queryShareListTotal(SearchShareEntity entity);
    
    /**
     * 分页查询用户分享记录
     */
    List<ShareEntity> queryShareInfoListByPage(@Param("entity") SearchShareEntity entity, 
                                              @Param("paging") PagingEntity paging);
    
    /**
     * 根据分享ID查询分享信息
     */
    ShareEntity queryShareInfoById(String shareId);
    
    /**
     * 根据分享链接查询分享信息
     */
    ShareEntity queryShareInfoByLink(String shareLink);
    
    /**
     * 新增分享记录
     */
    void addShareInfo(ShareEntity entity);
    
    /**
     * 更新分享记录
     */
    void updateShareInfo(ShareEntity entity);
    
    /**
     * 删除分享记录
     */
    void deleteShareById(String shareId);
    
    /**
     * 批量删除分享记录
     */
    void deleteShareByIds(String[] shareIds);
    
    /**
     * 更新分享状态
     */
    void updateShareStatus(@Param("shareId") String shareId, @Param("status") Integer status);
    
    /**
     * 更新下载次数
     */
    void updateDownloadCount(String shareId);
    
    /**
     * 更新查看次数
     */
    void updateViewCount(String shareId);
} 